using System;
using System.Windows.Forms;
using System.Collections.Generic;

namespace PluginInterface
{
    public delegate void ActionFunction(string[] args);

    public interface IPlugin
    {
        IPluginHost Host { get; set; }

        string Name { get; }
        string Description { get; }
        string Author { get; }
        string Version { get; }
        string Path { get; set; }

        System.Windows.Forms.UserControl MainInterface { get; }

        void Initialize();
        void Dispose();
        //*/
        void NavigateBack();
        void NavigateForward();
        void NavigateUp();
        void NavigateDown();
        bool Navigate(string text);
        //*/
        List<ActionFunction> ActionFunctions { get; }

    }

    public interface IPluginHost
    {
        void Feedback(string Feedback, IPlugin Plugin);
        void Act(string actionName, string[] actionParams);
        void RegisterAction(string actionName, ActionFunction actionFunc);
        //event EventHandler Navigating;
    }
}
